﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using Npgsql;
using NpgsqlTypes;
using Aeroporto.controle;
using Aeroporto.visão;
using Aeroporto.bd;

namespace Aeroporto.visao
{
    public partial class formLogin : Form
    {        
        LoginControl controllogin = new LoginControl();

        public formLogin()
        {                        
            InitializeComponent();            
        }

        private void Form1_Load(object sender, EventArgs e)
        {

        }

        private void label1_Click(object sender, EventArgs e)
        {

        }

        private void textBox2_TextChanged(object sender, EventArgs e)
        {

        }

        private void logar()
        {                        
            //teste leo
            //formComp companhia = new formComp("GLO");
            //companhia.Show();
            //this.Hide();  //problema do Hide(): precisa de fechar manualmente o processo com o metodo Application.Exit() antes de terminar a execução.
                        
            string usuario = txtUsuario.Text;
            string senha = Funcoes.GetMD5Hash(txtSenha.Text).ToUpper();
            try
            {
                string resposta = controllogin.logar(usuario, senha);
                switch (resposta)
                {
                    case "COMPANHIA":
                        formComp companhia = new formComp(usuario);
                        companhia.Show();
                        this.Hide();  //problema do Hide(): precisa de fechar manualmente o processo com o metodo Application.Exit() antes de terminar a execução.
                        //this.Visible = false;
                        break;
                    case "GOVERNO":
                        formGoverno governo = new formGoverno();
                        governo.Show();
                        this.Hide();
                        break;
                    case "AGENCIA":
                        formAgenciaViagem agencia = new formAgenciaViagem(usuario);
                        agencia.Show();
                        this.Hide();//chatisse do Hide(): precisa de fechar manualmente o processo com o metodo Application.Exit() antes de terminar a execução.Veja em formAgenciaViagem_FormClosed()                    
                        break;
                    case "FALHA":
                        MessageBox.Show("Usuário inválido", "ERRO.:");
                        break;
                }
            }
            catch (Exception e)
            {
                MessageBox.Show("Verifique se o site da FACOM caiu ou se você não está conectado na internet", "Erro "+e.Message);
            }
        }

        private void btnAcessar_Click(object sender, EventArgs e)
        {
            logar();
        }

        private void txtSenha_KeyPress(object sender, KeyPressEventArgs e)
        {
            if (e.KeyChar == 13)
            {
                logar();
            }
        }
    }
}

    
